package com.example.xunai.service.ai.strategy;

import com.example.xunai.config.AiModelConfig;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;

import java.util.List;
import java.util.Map;

public interface AiModelStrategy {

    /**
     * 获取模型类型
     */
    String getModelType();

    /**
     * 同步聊天
     */
    String chatSync(String message, List<Map<String, String>> conversationContext, AiModelConfig.ModelConfig config);

    /**
     * 流式聊天
     */
    SseEmitter chatStream(String message, List<Map<String, String>> conversationContext,
                          AiModelConfig.ModelConfig config, StreamCallback callback);

    /**
     * 验证配置
     */
    boolean validateConfig(AiModelConfig.ModelConfig config);

    interface StreamCallback {
        void onContent(String content);
        default void onComplete() {}
        default void onError(String error) {}

        // 新增：提供停止检查方法
        default boolean shouldStop() {
            return false;
        }
    }
}